Kanzi  3.9.7
Kanzi Engine API
kanzi::DynamicPropertyType< Type > Class Template Reference

DynamicPropertyType is a handle to an existing property type. More...

#include <kanzi/core/property/property_type.hpp>

Inheritance diagram for kanzi::DynamicPropertyType< Type >:
[legend]

Public Member Functions

 DynamicPropertyType (string_view name)
 Constructor. More...
 
 DynamicPropertyType (AbstractPropertyType abstractPropertyType)
 Constructor. More...
 
 DynamicPropertyType (AbstractPropertyTypeDescriptor &abstractDescriptor)
 Constructor. More...
 
 DynamicPropertyType (DynamicPropertyType< Type > &&other) noexcept
 Constructor. More...
 
DynamicPropertyType< Type > & operator= (DynamicPropertyType< Type > &&other) noexcept
 
void swap (DynamicPropertyType< Type > &other) noexcept
 
 ~DynamicPropertyType ()
 Destructor. More...
 
- Public Member Functions inherited from kanzi::PropertyType< Type >
Descriptorget () const
 
uint32_t getChangeFlags () const
 Gets the change flags for a property type. More...
 
PropertyDataType getDataType () const
 Gets the data type of a property type. More...
 
Traits::ReturnType getDefaultValue () const
 Gets the default value of a property type. More...
 
PropertyTypeEditorInfoSharedPtr getEditorInfo () const
 Gets the editor information of a property type. More...
 
const char * getName () const
 Gets the fully qualified name of a property type in the form "Class.PropertyType". More...
 
const char * getUnqualifiedName () const
 Gets the unqualified name of a property type in the form "PropertyType". More...
 
bool isInherited () const
 Returns whether a property type is inheritable. More...
 
 operator AbstractPropertyType () const
 Converting operator to get AbstractPropertyType instance referring to this PropertyType instance. More...
 
 PropertyType (FixedString name)
 Constructor. More...
 
 PropertyType (MetadataGeneratedName name)
 Constructor. More...
 
 PropertyType (FixedString name, DataType defaultValue, uint32_t changeFlags, bool inheritable)
 Constructor. More...
 
 PropertyType (MetadataGeneratedName name, DataType defaultValue, uint32_t changeFlags, bool inheritable)
 Constructor. More...
 
 PropertyType (FixedString name, DataType defaultValue, uint32_t changeFlags, bool inheritable, PropertyTypeEditorInfoSharedPtr editorInfo)
 Constructor. More...
 
 PropertyType (MetadataGeneratedName name, DataType defaultValue, uint32_t changeFlags, bool inheritable, PropertyTypeEditorInfoSharedPtr editorInfo)
 Constructor. More...
 
 ~PropertyType ()
 Destructor. More...
 

Static Public Member Functions

static OptionalDynamicPropertyType< Type > tryCreate (string_view name)
 Creates an OptionalDynamicPropertyType that holds a DynamicPropertyType instance with the given name. More...
 

Friends

void swap (DynamicPropertyType< Type > &lhs, DynamicPropertyType< Type > &rhs) noexcept
 

Additional Inherited Members

- Public Types inherited from kanzi::PropertyType< Type >
using DataType = Type
 
using Descriptor = PropertyTypeDescriptor< Type >
 
using Traits = typename PropertyTypeDescriptor< Type >::Traits
 
- Protected Member Functions inherited from kanzi::PropertyType< Type >
 PropertyType ()
 Constructor. More...
 

Detailed Description

template<class Type>
class kanzi::DynamicPropertyType< Type >

DynamicPropertyType is a handle to an existing property type.

You can use it to set or get from a node a property type value with a specific data type.

You can use a DynamicPropertyType to access property types when you have their data type and fully qualified name. When you do not have a fully qualified name or data type of a property type, or they are irrelevant, to access property types, use the AbstractPropertyType type.

To learn how to create a Kanzi property type, see PropertyType.

Examples

To create a property type with a fully qualified name for an existing property type:

// You can create a dynamic property type handle to an existing property type by using the fully qualified name.
// To set and get a property value for a property type, you need either:
// - DynamicPropertyType object that refers to an existing property type.
// - PropertyType object. For example, Node::VisibleProperty.
DynamicPropertyType<bool> visibleProperty("Node.Visible");
node->setProperty(visibleProperty, false);

Constructor & Destructor Documentation

template<class Type >
kanzi::DynamicPropertyType< Type >::DynamicPropertyType ( string_view  name)
inlineexplicit

Constructor.

Creates a DynamicPropertyType instance referring to an existing property type with the given name.

Parameters
nameFully qualified name of an existing property type in the Kanzi property system.
Exceptions
logic_errorif there is no property type with the given name in the Kanzi property system or the data type does not match the existing property type with the given name.
template<class Type >
kanzi::DynamicPropertyType< Type >::DynamicPropertyType ( AbstractPropertyType  abstractPropertyType)
inlineexplicit

Constructor.

Creates a DynamicPropertyType instance that refers to the same existing property type as the given AbstractPropertyType instance does.

Parameters
abstractPropertyTypeAbstractPropertyType instance that refers to the existing property type in the Kanzi property system.
Exceptions
invalid_argumentif abstractPropertyType is not valid.
logic_errorif the data type does not match the existing property type to which the given abstractPropertyType refers.
template<class Type >
kanzi::DynamicPropertyType< Type >::DynamicPropertyType ( AbstractPropertyTypeDescriptor abstractDescriptor)
inlineexplicit

Constructor.

Creates a DynamicPropertyType instance that refers to the given AbstractPropertyTypeDescriptor.

Note
This constructor solves a special case, prefer to use the other overloads.
Parameters
abstractDescriptorAbstractPropertyTypeDescriptor instance of an existing property type in the Kanzi property system.
Exceptions
logic_errorif the data type does not match the existing property type.
template<class Type >
kanzi::DynamicPropertyType< Type >::DynamicPropertyType ( DynamicPropertyType< Type > &&  other)
inlinenoexcept

Constructor.

template<class Type >
kanzi::DynamicPropertyType< Type >::~DynamicPropertyType ( )
inline

Destructor.

Member Function Documentation

template<class Type >
static OptionalDynamicPropertyType<Type> kanzi::DynamicPropertyType< Type >::tryCreate ( string_view  name)
inlinestatic

Creates an OptionalDynamicPropertyType that holds a DynamicPropertyType instance with the given name.

Parameters
nameFully qualified name of an existing property type in the Kanzi property system.
Returns
If the given name refers to an existing property type, returns the OptionalDynamicPropertyType that holds the DynamicPropertyType instance, otherwise, returns null.
Since
Kanzi 3.9.7
template<class Type >
DynamicPropertyType<Type>& kanzi::DynamicPropertyType< Type >::operator= ( DynamicPropertyType< Type > &&  other)
inlinenoexcept
template<class Type >
void kanzi::DynamicPropertyType< Type >::swap ( DynamicPropertyType< Type > &  other)
inlinenoexcept

Friends And Related Function Documentation

template<class Type >
void swap ( DynamicPropertyType< Type > &  lhs,
DynamicPropertyType< Type > &  rhs 
)
friend

The documentation for this class was generated from the following file: